草庐IT

Java Iterator(迭代器)

全部标签

javascript - 使用 Google 闭包模板时如何迭代 Soy 文件中的对象?

我想创建我自己的模板,我可以将对象传递给该模板,并让Soy模板遍历对象并提取键和值。如果我在JavaScript中有对象并调用Soy模板:varobj={'one':'a','two':b,'three':c};nameSpace.templateName({'paramValue':obj});如何获取['one','two','three']值?通常我会使用jQuery的each()函数,但我不确定如何在不将对象转换为数组的情况下在Soy文件中做类似的事情。我正在使用的对象具有已知的形式(没有嵌套对象,或者如果有,它们是提前已知的并且进入已知深度)。欢迎回答这个问题或带有嵌套对象的

javascript - 使用 JavaScript 的 reduce 时,如何跳过迭代?

我正在尝试找出一种在使用JavaScript的reduce函数时有条件地中断迭代的方法。给定以下代码对整数数组求和并将返回数字10:[0,1,2,3,4].reduce(function(previousValue,currentValue,currentIndex,array){returnpreviousValue+currentValue;});我怎样才能做这样的事情:[0,1,2,3,4].reduce(function(previousValue,currentValue,currentIndex,array){if(currentValue==="WHATEVER"){//

javascript - 使用 Grunt 迭代模板

我正在构建一个grunt文件,我有2个文件夹需要应用相同的grunt任务。我希望能够使用grunttemplate属性遍历每个文件夹,这样我就不必通过重复配置对象来膨胀我的grunt配置对象。像这样:app1:{name:'app1',src:['src/app/'],jsTpl:['//templates/**/*.js'],js:'/**/*.js'},app2{name:'app2',src:['src/app/'],jsTpl:['//templates/**/*.js'],js:'/**/*.js'},concat:{app1:{src:[''],dest:['dist']}

javascript - 这个for循环会迭代多次吗?

我一直在和同事讨论一些代码:for(constaofarr){if(a.thing)continue;//doathing}一个建议是过滤它并使用forEacharr.filter(a=>!a.thing).forEach(a=>/*doathing*/);有一个关于重复不必要的讨论。我查过这个,我找不到任何东西。我也试图弄清楚如何查看优化后的输出,但我也不知道该怎么做。我希望filter和forEach变成非常类似于forof和continue,但我不知道如何确定。我怎样才能知道?到目前为止,我唯一尝试过的是谷歌。 最佳答案 您的

javascript - 在 Coffeescript 中迭代 ES6 Set/Map(使用 `of` 运算符)

如何迭代ES6Map或Set在Coffeescript中?在Javascript中可以使用例如s=newSet()s.add({a:1})for(xofs){console.log(x);}但是Coffeescript有自己的of运算符,可以转换为in,即:console.log(x)forxofs变成...for(xins){...}。如何在Coffeescript中访问Javascript的of运算符?人们可以通过遍历s.values().next()来编写自己的自定义迭代器,但那是一种令人厌恶的行为。:) 最佳答案 目前无法使

javascript - 如何按照编写的顺序迭代javascript对象属性

我在我的代码中发现了一个错误,我希望用最少的重构工作来解决它。此错误发生在Chrome和Opera浏览器中。问题:varobj={23:"AA",12:"BB"};//iteratingthroughobj'spropertiesfor(iinobj)document.write("Key:"+i+""+"Value:"+obj[i]);在FF,IE中输出键:23值:AA键:12值:BBOpera和Chrome中的输出(错误)键:12值BB键值:23值AA我试图制作一个像这样的逆序对象varobj1={"AA":23,"BB":12};for(iinobj1)document.writ

javascript - 3,000,000,000 次迭代循环行为异常

在尝试回答thisquestion时,我遇到了一个奇怪的行为(这是不一样的:他的是由于迭代太少,我的太多):HTML:itwillbelegend...JS:varoutput=document.getElementById('output');document.getElementById('go').onclick=function(){output.textContent+='waitforit...';for(vari=0;i由于循环有3,000,000,000次迭代,因此循环需要几秒钟的时间来执行。单击按钮后,我期望的是:waitit...出现由于循环,进程有点卡顿dary!

javascript - 如何迭代对象中的内部对象/属性

我有一个对象,它的内部对象和属性定义如下:varobj={obj1:{"prop1":"nothing","prop2":"prop"},obj2:{"prop1":"nothing","prop2":"prop"},pr1:"message",pr2:"mess"};通常要迭代对象的每个属性,for..in循环可以做到这一点for(propertyinobj){if(obj.hasOwnProperty(property)){console.log(property+""+obj[property]);}}控制台显示:obj1[objectObject]obj12[objectObj

javascript - 在 React 中迭代数据数组时呈现 JSX 元素的最有效方式

我有一个包含对象的数组。我正在创建此数组的映射以使用span组件呈现名称。letdata=[{"id":"01","name":"Hi"},{"id":"02","name":"Hello"}];我一直在使用以下两种不同的功能来迭代该对象数组,并使用map来呈现JSX元素。功能1:importReact,{Component}from'react';classAppextendsComponent{render(){letdata=[{"id":"01","name":"Hi"},{"id":"02","name":"Hello"}];constitems=data.map((key,

javascript - 迭代从 _.groupBy 检索到的对象

使用下划线函数groupBy,数组可以根据其元素的属性之一进行分组。结果是一个具有如下键值对的对象:组>相应的数组片段。varwords=['Hey','Hii','Salut'],grouped=_.groupBy(words,'length');分组看起来像这样:{'3':['Hey','Hii'],'5':['Salut']}这将是一种简单而安全的迭代方法,比如从最高长度开始,然后是下一个最低长度。这有效:_.each(_.toArray(grouped).reverse(),function(v){console.log(v);});但我认为这并不完全正确,因为对象是无序列表,